package com.slwish.xty.ui.activity;

import android.Manifest;
import android.content.Intent;
import android.os.Handler;

import com.slwish.common.base.PresenterNoToolbarActivity;
import com.slwish.common.config.Contants;
import com.slwish.common.config.PathImgHelp;
import com.slwish.common.utils.IntentUtils;
import com.slwish.common.utils.SpUtils;
import com.slwish.xty.R;
import com.slwish.xty.mvp.contract.LoadingContract;
import com.slwish.xty.mvp.presenter.LoadingPresenter;
import com.yanzhenjie.permission.AndPermission;
import com.yanzhenjie.permission.PermissionNo;
import com.yanzhenjie.permission.PermissionYes;

import java.util.List;


/**
 * 模块说明：加载页
 *
 * @author 陈浩
 * @date 2017/11/27
 */

public class LoadingActivity extends PresenterNoToolbarActivity<LoadingContract.Presenter> implements LoadingContract.View {
    @Override
    protected boolean isShowStatusBar() {
        return false;
    }
    @Override
    protected int getLayoutId() {
        return R.layout.act_loading;
    }
    @Override
    protected void initWidget() {
        super.initWidget();
        // 申请多个权限。
        AndPermission.with(this)
                .requestCode(Contants.MULTIPLE_ACCESS_APPLICATION)
                .permission(Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE)
                .callback(this)
                .start();

    }


    // 成功回调的方法，用注解即可，这里的300就是请求时的requestCode。
    @PermissionYes(Contants.MULTIPLE_ACCESS_APPLICATION)
    private void getPermissionYes(List<String> grantedPermissions) {
        // TODO 申请权限成功。
        // 权限申请成功回调。
        startIntent();
    }

    @PermissionNo(Contants.MULTIPLE_ACCESS_APPLICATION)
    private void getPermissionNo(List<String> deniedPermissions) {
        // TODO 申请权限失败。
        startIntent();
    }

    /**
     * 处理后跳转
     */
    private void startIntent() {
        PathImgHelp.createPath(mContext);
        //加载首页列表数据
        mPresenter.getMainListData(mContext.getApplicationContext(),"119.697805", "29.70", mPagerCofig.getCurrentPage());//获取首页列表数据
        try {
            // 判断是否是第一次开启应用
            final boolean isFirstOpen = (boolean) SpUtils.get(mContext, Contants.FIRST_OPEN, true);
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    // 如果是第一次启动，则先进入功能引导页
                    if (isFirstOpen) {
                        Intent intent = new Intent(mContext, SplishActivity.class);
                        startActivity(intent);
                        finish();
                        return;
                    } else {
                        enterHomeActivity();
                    }
                }
            }, 3000);
        } catch (Exception e) {

        }
    }

    /**
     * 首页
     */
    private void enterHomeActivity() {
        IntentUtils.startActivity(mContext, MainActivity.class);
        finish();
    }

    @Override
    protected LoadingContract.Presenter initPresenter() {
        return new LoadingPresenter(this);
    }
}
